Load balancing enabled in places where it's thought to be reasonably safe
[lhc/web/wiklou.git] / includes / SpecialStatistics.php
1 <?php
2
3 function wfSpecialStatistics()
4 {
5 global $wgUser, $wgOut, $wgLang, $wgIsPg, $wgLoadBalancer;
6 $fname = "wfSpecialStatistics";
7
8 $wgLoadBalancer->force(-1);
9
10 $wgOut->addHTML( "<h2>" . wfMsg( "sitestats" ) . "</h2>\n" );
11
12 $sql = "SELECT COUNT(cur_id) AS total FROM cur";
13 $res = wfQuery( $sql, DB_READ, $fname );
14 $row = wfFetchObject( $res );
15 $total = $row->total;
16
17 $sql = "SELECT ss_total_views, ss_total_edits, ss_good_articles " .
18 "FROM site_stats WHERE ss_row_id=1";
19 $res = wfQuery( $sql, DB_READ, $fname );
20 $row = wfFetchObject( $res );
21 $views = $row->ss_total_views;
22 $edits = $row->ss_total_edits;
23 $good = $row->ss_good_articles;
24
25 $text = wfMsg( "sitestatstext",
26 $wgLang->formatNum( $total ),
27 $wgLang->formatNum( $good ),
28 $wgLang->formatNum( $views ),
29 $wgLang->formatNum( $edits ),
30 $wgLang->formatNum( sprintf( "%.2f", $total ? $edits / $total : 0 ) ),
31 $wgLang->formatNum( sprintf( "%.2f", $edits ? $views / $edits : 0 ) ) );
32
33 $wgOut->addWikiText( $text );
34 $wgOut->addHTML( "<h2>" . wfMsg( "userstats" ) . "</h2>\n" );
35
36 $usertable=$wgIsPg?'"user"':'user';
37 $sql = "SELECT COUNT(user_id) AS total FROM $usertable";
38 $res = wfQuery( $sql, DB_READ, $fname );
39 $row = wfFetchObject( $res );
40 $total = $row->total;
41
42 $sql = "SELECT COUNT(user_id) AS total FROM $usertable " .
43 "WHERE user_rights LIKE '%sysop%'";
44 $res = wfQuery( $sql, DB_READ, $fname );
45 $row = wfFetchObject( $res );
46 $admins = $row->total;
47
48 $sk = $wgUser->getSkin();
49 $ap = "[[" . wfMsg( "administrators" ) . "]]";
50
51 $text = wfMsg( "userstatstext",
52 $wgLang->formatNum( $total ),
53 $wgLang->formatNum( $admins ), $ap );
54 $wgOut->addWikiText( $text );
55
56 $wgLoadBalancer->force(0);
57 }
58
59 ?>